package com.xyrl.third.aliyun.service;

import com.alibaba.fastjson.JSON;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectResult;
import com.xyrl.third.aliyun.config.AliYunProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.FileNotFoundException;
import java.io.InputStream;

@Slf4j
public class AliOssService {

    @Autowired
    private AliYunProperties aliYun;

    public void uploadFile(InputStream inputStream, String fileName) throws FileNotFoundException {
        // Endpoint以杭州为例，其它Region请按实际情况填写。
        String endpoint = aliYun.getOss().getEndpoint();
        // 云账号AccessKey有所有API访问权限，建议遵循阿里云安全最佳实践，创建并使用RAM子账号进行API访问或日常运维，请登录 https://ram.console.aliyun.com 创建。
        String accessKeyId = aliYun.getAccessKeyId();
        String accessKeySecret = aliYun.getAccessKeySecret();
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 上传文件流。
        PutObjectResult result = ossClient.putObject(aliYun.getOss().getBucketName(), fileName, inputStream);
        log.info("附件上传返回结果:{}", JSON.toJSON(result));
        // 关闭OSSClient。
        ossClient.shutdown();
    }

}
